package interfaz;

import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

import net.miginfocom.swing.MigLayout;
import sistemaAlmacen.Pedido;
import sistemaUsuarios.Usuario;
import javax.swing.border.LineBorder;

public class ListaPedidos extends JPanel implements IVista{

	private JPanel pnlLista;
	private JPanel pnlFuncionalidad;

	/**
	 * Create the panel.
	 */
	public ListaPedidos() {
		GridBagLayout gridBagLayout = new GridBagLayout();
		gridBagLayout.columnWidths = new int[]{194, 0, 0};
		gridBagLayout.rowHeights = new int[]{0, 0};
		gridBagLayout.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
		gridBagLayout.rowWeights = new double[]{1.0, Double.MIN_VALUE};
		setLayout(gridBagLayout);
		
		pnlLista = new JPanel();
		pnlLista.setBorder(new LineBorder(new Color(0, 0, 0)));
		pnlLista.setBackground(Color.WHITE);
		GridBagConstraints gbc_pnlLista = new GridBagConstraints();
		gbc_pnlLista.insets = new Insets(0, 0, 0, 5);
		gbc_pnlLista.fill = GridBagConstraints.BOTH;
		gbc_pnlLista.gridx = 0;
		gbc_pnlLista.gridy = 0;
		add(pnlLista, gbc_pnlLista);
		pnlLista.setLayout(new MigLayout("", "[][]", "[][][][]"));
		
		pnlFuncionalidad = new JPanel();
		pnlFuncionalidad.setBackground(Color.WHITE);
		GridBagConstraints gbc_pnlFuncionalidad = new GridBagConstraints();
		gbc_pnlFuncionalidad.fill = GridBagConstraints.BOTH;
		gbc_pnlFuncionalidad.gridx = 1;
		gbc_pnlFuncionalidad.gridy = 0;
		add(pnlFuncionalidad, gbc_pnlFuncionalidad);

	}

	@Override
	public void update() {
		this.invalidate();
		this.pnlFuncionalidad.invalidate();
		this.pnlLista.invalidate();
		this.pnlFuncionalidad.repaint();
		this.pnlLista.repaint();
		this.repaint();
		this.revalidate();
		
	}

	@Override
	public void SetVisible(boolean visible) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void registerListener(ActionListener listener) {
		
	}
	
	public void populateTable(ArrayList<Pedido> listaPedidos, ActionListener listener){
		
		this.remove(this.pnlLista);
		
		JPanel nuevoPnlLista = new JPanel();
			
		nuevoPnlLista.setBorder(new LineBorder(new Color(0, 0, 0)));
		nuevoPnlLista.setBackground(Color.WHITE);
		GridBagConstraints gbc_pnlLista = new GridBagConstraints();
		gbc_pnlLista.insets = new Insets(0, 0, 0, 5);
		gbc_pnlLista.fill = GridBagConstraints.BOTH;
		gbc_pnlLista.gridx = 0;
		gbc_pnlLista.gridy = 0;
		nuevoPnlLista.setLayout(new MigLayout("", "[][][]", "[][]"));
		
		int contadorFilas = 0;
		Iterator<Pedido> it = listaPedidos.iterator();
	
		
		while(it.hasNext()){
			Pedido pedido = it.next();
			
			JButton btnPedido = new JButton();
			btnPedido.addActionListener(listener);
			btnPedido.setActionCommand("PEDIDO_" + String.valueOf(pedido.getId()));
			btnPedido.setText(pedido.getFecha().toString());
			
			nuevoPnlLista.add(btnPedido, "cell 1 " + String.valueOf(contadorFilas));
				
			contadorFilas++;
		}
		
		JButton btnNuevoPedido = new JButton();
		btnNuevoPedido.setActionCommand("nuevo");
		btnNuevoPedido.addActionListener(listener);
		btnNuevoPedido.setText("Nuevo pedido");
		nuevoPnlLista.add(btnNuevoPedido, "cell 1 " + String.valueOf(contadorFilas));
		
		
		add(nuevoPnlLista, gbc_pnlLista);
		this.pnlLista = nuevoPnlLista;

	}

	public void setPanelFuncionalidad(JPanel panelFuncionalidad) {
		this.remove(this.pnlFuncionalidad);
		
		panelFuncionalidad.setBackground(Color.WHITE);
		GridBagConstraints gbc_pnlFuncionalidad = new GridBagConstraints();
		gbc_pnlFuncionalidad.fill = GridBagConstraints.BOTH;
		gbc_pnlFuncionalidad.gridx = 1;
		gbc_pnlFuncionalidad.gridy = 0;
		add(panelFuncionalidad, gbc_pnlFuncionalidad);
		
		this.pnlFuncionalidad = panelFuncionalidad;
	}
}
